fd7980e9674bdb6effdac79e494142ba6d9df4cd,plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGroovyPropertyProcessor.java,RenameGroovyPropertyProcessor,renameElement,#PsiElement#String#UsageInfo[]#RefactoringElementListener#,78

Before Change


    field.setName(newName);

    final PsiMethod newGetter = GroovyPropertyUtils.findGetterForField(field);
    for (PsiReference ref : getterRefs) {
      rename(ref, newGetterName, manager, newGetter);
    }

    final PsiMethod newSetter = GroovyPropertyUtils.findSetterForField(field);

After Change



    final PsiManager manager = field.getManager();

    List<PsiReference> getterRefs = new ArrayList<PsiReference>();
    List<PsiReference> setterRefs = new ArrayList<PsiReference>();
    List<PsiReference> fieldRefs = new ArrayList<PsiReference>();

    for (UsageInfo usage : usages) {
      final PsiElement element = usage.getElement();
      if (element == null) continue;

      PsiReference ref = element.getReference();
      if (ref == null) continue;

      PsiElement resolved = ref.resolve();
      if (manager.areElementsEquivalent(resolved, getter)) {
        if (isPropertyAccess(element)) {
          fieldRefs.add(ref);
        }
        else {
          getterRefs.add(ref);
        }
      }
      else if (manager.areElementsEquivalent(resolved, setter)) {
        if (isPropertyAccess(element)) {
          fieldRefs.add(ref);
        }
        else {
          setterRefs.add(ref);
        }
      }
      else if (manager.areElementsEquivalent(resolved, field)) {
        fieldRefs.add(ref);
      }
      else {
        ref.handleElementRename(newName);
      }
    }

    field.setName(newName);

    final PsiMethod newGetter = GroovyPropertyUtils.findGetterForField(field);
    doRename(newGetterName, manager, getterRefs, newGetter);

    final PsiMethod newSetter = GroovyPropertyUtils.findSetterForField(field);
    doRename(newSetterName, manager, setterRefs, newSetter);